Release 10.1A: OpenEdge Deployment:
Managing 4GL Applications
R-code execution environment
OpenEdge provides a dynamic environment for loading and executing r-code procedures from operating system files, standard procedure libraries, and memory-mapped procedure libraries. This execution environment consists of the following components:
- Execution buffer — The portion of local memory that OpenEdge allocates and uses to store the chain of loaded r-code segments for all standard r-code procedures executing in local memory.
- Session sort file (
.srt) — A file that OpenEdge uses to dynamically swap standard r-code segments in and out of the execution buffer.- Shared memory buffer — The portion of shared memory that the operating system allocates and uses to store and execute the r-code segments for all memory-mapped r-code procedures.
- Segment descriptor table — An in-memory table that references the r-code segments required by all executing procedures, including the location of each r-code segment in local or shared memory and usage count information.
- R-code directory — An in-memory table that contains information about all r-code procedures executing in local or shared memory, including r-code size, usage count, segment descriptions, and a reference to the segment descriptor table for each segment.
For more information about the r-code execution environment, see Appendix B "R-code Features and Functions."
OpenEdge loads and executes r-code procedures in different ways, depending on whether you store the r-code files in an r-code library and the type of library. The following sections provide an overview of how OpenEdge loads and executes r-code from an operating system file, a standard procedure library, and a memory-mapped procedure library.
Loading and executing r-code from a file
When loading an r-code procedure from an operating system file in a directory, OpenEdge opens the r-code file, loads the required r-code segments into local memory, and closes the file.
When executing an r-code procedure from an operating system file, OpenEdge accesses and executes the r-code segments in the execution buffer in local memory. OpenEdge also swaps segments to and from the session sort file, as necessary.
Loading and executing r-code from a standard library
When loading an r-code procedure from a standard library, OpenEdge opens the library file and loads the required r-code segments into local memory. The library remains open until the end of your Progress 4GL session or until you remove the library from the
PROPATH. When OpenEdge needs to load an r-code segment for a procedure in that library, it accesses the open library in local memory. This is much faster than loading the same procedure from an operating system file.When executing an r-code procedure from a standard r-code library, OpenEdge accesses and executes the r-code segments in the execution buffer in local memory. OpenEdge does not swap r-code segments to the session sort file unless you specify the PROLIB Swap (-pls) startup parameter. By default, OpenEdge reloads segments from the open library in local memory.
Loading and executing r-code from a memory-mapped library
When loading an r-code procedure from a memory-mapped library, OpenEdge opens the library and maps it in shared memory where multiple users can access it. The library remains mapped until the end of your Progress 4GL session or until you remove the library from the
PROPATH. When OpenEdge needs to execute an r-code segment for a memory-mapped procedure, it accesses the library in shared memory. This is even faster than loading the same procedure from a standard library.Tuning r-code execution
Table 5–1 lists the startup parameters you use to tune the r-code execution environment for a session.
For more information about these startup parameters, see OpenEdge Deployment: Startup Command and Parameter Reference .
Tuning standard r-code libraries
Table 5–2 lists the startup parameters you use to tune standard r-code libraries for a session.
If you specify the PROLIB Memory (
-plm) and PROLIB Swap (-pls) startup parameters with memory-mapped libraries, OpenEdge ignores them.For more information about these startup parameters, see OpenEdge Deployment: Startup Command and Parameter Reference .
|
Copyright © 2005 Progress Software Corporation www.progress.com Voice: (781) 280-4000 Fax: (781) 280-4095 |